package santeclair.connexion.dao.parametrage.hibernate;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import santeclair.connexion.constantes.ConnexionConstantes;
import santeclair.connexion.dao.parametrage.PartenaireDao;
import santeclair.connexion.domaine.parametrage.Partenaire;
import santeclair.lunar.framework.dao.jpa.impl.FwkGenericJpaDAO;
import santeclair.referentiel.dao.jpa.OrganismeDao;

/**
 * Implementation hibernate du DAO {@link PartenaireDao}.
 * 
 * @deprecated Utilisez le DAO {@link OrganismeDao}
 * @author pveronneau
 */
@Repository
@Deprecated
public class PartenaireDaoImpl extends FwkGenericJpaDAO<Partenaire> implements PartenaireDao {

    @PersistenceContext(unitName = ConnexionConstantes.PERSISTENCE_UNIT_NAME)
    private EntityManager entityManager;

    @Override
    public Class<Partenaire> getEntityClass() {
        return Partenaire.class;
    }

    @Override
    public EntityManager getEntityManager() {
        return entityManager;
    }

    /** {@inheritDoc} */
    @Transactional(readOnly = true)
    @Deprecated
    public Partenaire getPartenaire(String alias) {
        return findByUniqueParameter("aliasPartenaire", alias);
    }

    /**
     * {@inheritDoc}
     */
    @Transactional(readOnly = true)
    @Deprecated
    public List<Partenaire> getListPartenaire() {
        return findAll();
    }

    /** {@inheritDoc} */
    @Transactional
    @Deprecated
    public void savePartenaire(Partenaire partenaire) {
        saveOrUpdate(partenaire);
    }
}
